<?php

/*
 * Copyright (c) 2008, 2009 Carlos Romel Pereira da Silva <carlos.romel@gmail.com>
 * Copyright (c) 2008 João Paulo Cirino Silva de Novais <joaopaulonovais@gmail.com>
 *
 * Model
 */

class PessoaDAO {

    static function inserir($pessoa) {

        $SQL = "insert into ems_pessoa (cod_tipo_pessoa, cod_pessoa_situacao, nom_pessoa, ind_sexo, num_documento_ dat_nascimento, nom_apelido)
                                values ('" . $pessoa["cod_tipo_pessoa"]     . "',
                                        '" . $pessoa["cod_pessoa_situacao"] . "',
                                        '" . $pessoa["nom_pessoa"] . "',
                                        '" . $pessoa["ind_sexo"] . "',
                                        '" . $pessoa["num_documento_"] . "',
                                        '" . $pessoa["dat_nascimento"] . "',
                                        '" . $pessoa["nom_apelido"] . "')";

        return Conexao::executarSQL($SQL);
    }

    static function alterar($pessoa) {

        $SQL = "update ems_pessoa
                   set cod_tipo_pessoa     = '" . $pessoa["cod_tipo_pessoa"]     . "',
                       cod_pessoa_situacao = '" . $pessoa["cod_pessoa_situacao"] . "',
                       nom_pessoa          = '" . $pessoa["nom_pessoa"]          . "',
                       ind_sexo            = '" . $pessoa["ind_sexo"]            . "',
                       num_documento       = '" . $pessoa["num_documento"]      . "',
                       dat_nascimento      = '" . $pessoa["dat_nascimento"]      . "',
                       nom_apelido         = '" . $pessoa["nom_apelido"]         . "'
                 where cod_pessoa = '" . $pessoa["cod_pessoa"] . "'";

        return Conexao::executarSQL($SQL);
    }

    static function remover($pessoa) {

        $SQL = "delete from ems_pessoa where cod_pessoa = '" . $pessoa["cod_pessoa"] . "'";

        return Conexao::executarSQL($SQL);
    }

    static function consultar($pessoa = null, $vetor = true, $JSON = false) {

        $SQL = "select *
                  from ems_tipo_pessoa     tp,
                       ems_pessoa_situacao ps,
                       ems_pessoa          p
                 where tp.cod_tipo_pessoa     = p.cod_tipo_pessoa
                   and ps.cod_pessoa_situacao = p.cod_pessoa_situacao";

        if ($pessoa["cod_pessoa"]) {

            $SQL .= " and p.cod_pessoa = '" . $pessoa["cod_pessoa"] . "'";
        }

        if ($pessoa["cod_tipo_pessoa"]) {

            $SQL .= " and tp.cod_tipo_pessoa = '" . $pessoa["cod_tipo_pessoa"] . "'";
        }

        if ($pessoa["cod_pessoa_situacao"]) {

            $SQL .= " and ps.cod_pessoa_situacao = '" . $pessoa["cod_pessoa_situacao"] . "'";
        }

        if ($pessoa["nom_pessoa"]) {

            $SQL .= " and p.nom_pessoa like '%" . $pessoa["nom_pessoa"] . "%'";
        }

        $SQL .= " order by p.nom_pessoa";

        return ($vetor) ? Conexao::obterDados($SQL, $JSON) : Conexao::executarSQL($SQL);
    }

    static function consultarPorNome($nomePessoa = null, $vetor = true, $JSON = false) {

        $SQL = "select p.cod_pessoa as id, p.nom_pessoa as name
                  from ems_pessoa p
                where p.nom_pessoa like '%".$nomePessoa."%'
                order by p.nom_pessoa";
        
        return ($vetor) ? Conexao::obterDados($SQL, $JSON) : Conexao::executarSQL($SQL);
    }
    
    static function consultarAniversariantesDia($pessoa = null, $vetor = true, $JSON = false) {

        $SQL = "select p.nom_pessoa as nom_pessoa_aniversariante
                  from ems_pessoa p
                where p.dat_nascimento = current_date()
                order by p.nom_pessoa";
        
        return ($vetor) ? Conexao::obterDados($SQL, $JSON) : Conexao::executarSQL($SQL);
    }
}
?>
